home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / hamradio / sgp4_pl2.zip / SGP4-PLB.DOC < prev    next >
Text File  |  1992-10-01  |  12KB  |  202 lines

  1.                               Documentation for
  2.                              NORAD SGP4/SDP4 Units
  3.  
  4.                                  Developed by
  5.                                  Dr TS Kelso
  6.  
  7.                                  Version 2.50
  8.                                 1992 October 01
  9.  
  10. Copyright (C) 1992.  All rights reserved.
  11.  
  12.  
  13. PURPOSE
  14.  
  15. The enclosed Pascal source code implements the NORAD SGP4/SDP4 orbital models
  16. for use with the standard two-line orbital element sets to determine earth-
  17. centered inertial (ECI) and topocentric coordinates of earth-orbiting objects.
  18. This code implements both the near-earth and deep-space portions of the NORAD
  19. SGP4 orbital model.  These units are designed to make the development of
  20. programs based on the NORAD orbital models straightforward and standardized.
  21.  
  22.  
  23. INTRODUCTION
  24.  
  25. In order to properly determine the position of any earth-orbiting object using
  26. the standard NORAD two-line element sets, it is necessary that the proper
  27. orbital model be used.  Since the observations taken by NORAD for each earth-
  28. orbiting object are reduced to orbital elements using the SGP4 (Simplified
  29. General Perturbations) model, the SGP4 model *must* be used to get the most
  30. accurate determination possible of an object's position and velocity.  The
  31. primary reason for this requirement is that each orbital model handles
  32. perturbations (due to atmospheric drag, solar and lunar gravitational effects,
  33. irregularities of the earth's gravitational field, etc.) in a different
  34. manner.  The NORAD two-line element sets incorporate these perturbations using
  35. the SGP4 orbital model and that model is required to accurately reconstruct
  36. the magnitudes of these effects.
  37.  
  38. The SGP4 orbital model takes into account perturbations due to atmospheric
  39. drag (based on a static, non-rotating, spherically-symmetric atmosphere whose
  40. density can be described by a power law), fourth-order zonal geopotential
  41. harmonics (J2, J3, and J4), spin-orbit resonance effects for synchronous and
  42. semi-synchronous orbits, and solar and lunar gravitational effects to first
  43. order.  The two portions of the SGP4 model are SGP4 (for objects in orbits
  44. with periods less than 225 minutes) and SDP4 (for objects in orbits greater
  45. than or equal to 225 minutes).  The reason for breaking the model into two
  46. parts is that for low-earth orbits the effects of spin-orbit resonance and
  47. lunar and solar gravity are not significant.  This result allows the
  48. development of an analytical model (SGP4) for determining an object's position
  49. and velocity, thereby reducing the computational burden.  For deep-space
  50. orbits, a semi-analytical model (SDP4) is required.
  51.  
  52. Models which implement the older SGP model should be accurate for low-earth
  53. orbits but really won't be adequate for deep-space objects, particularly those
  54. in resonance with the geopotential.
  55.  
  56.  
  57. COMPUTER IMPLEMENTATION
  58.  
  59. The enclosed Pascal source code was developed in Turbo Pascal Version 6.0 to
  60. fully implement the NORAD SGP4 orbital model.  There are now twelve units
  61. provided:
  62.  
  63.      SGP4SDP4     Full implementation of NORAD SGP4/SDP4 models
  64.      SGP_OBS      Observer-dependent routines for calculating topocentric
  65.                   information
  66.      MINMAX       Minimum/maximum functions
  67.      SGP_MATH     Various trigonometric and mathematical routines
  68.      SGP_TIME     Time-based routines for converting among time systems
  69.      SGP_INIT     Code and variables needed to initialize SGP4SDP4
  70.      SGP_INTF     Interface between SGP4SDP4 and SGP_CONV (and some special-
  71.                   purpose programs)
  72.      SGP_CONV     Routines for converting two-line data and SGP4 state vectors
  73.      SGP_IN       Routines to simplify input of data (with error checking)
  74.      SGP_OUT      Routines for outputting program results in standard formats
  75.      SOLAR        Routines for calculating the position of the sun and whether
  76.                   a satellite is in earth umbral eclipse
  77.      SUPPORT      General support routines for machine-dependent features
  78.  
  79. These units are structured to make development of software as simple as
  80. possible and to reduce the time needed for validating results.  A certain
  81. amount of the development is also tailored toward the development of a similar
  82. set of units in C, which is now underway.  A more complete description of
  83. these Pascal units is included in SGP4-PLB.ITF.
  84.  
  85. Of the units provided, the most complex is the implementation of the NORAD
  86. orbital models (SGP4SDP4).  The development of this unit was done to follow as
  87. closely as possible the implementation contained in Spacetrack Report Number
  88. 3, "Models for Propagation of NORAD Element Sets," (a copy of the LaTeX
  89. documentation and complete FORTRAN source code is available on this system).
  90. No attempt has been made at this point to optimize the code to run faster.  A
  91. future release will provide a more streamlined implementation.  To ensure the
  92. validity of these units, no changes should be made to the units themselves
  93. which have been extensively tested and validated.  LaTeX documentation to
  94. support this validation should be available on this system soon (look for
  95. SGP4-VAL.TEX).
  96.  
  97. A test program (SGP4TEST.PAS) is included to implement the sample cases
  98. included in the Spacetrack Report Number 3 documentation.  It should provide a
  99. reasonably good idea of how to use these Turbo Pascal units.  To determine an
  100. object's position and velocity, the object's two-line orbital element set is
  101. read into the array {sat_data} [Note:  Variable names will be enclosed within
  102. braces to set them apart in this document].  A call is then made to the
  103. procedure Convert_Satellite_Data passing the satellite's index {satnumber}.
  104. In the call to this procedure, a determination is automatically made as to
  105. whether the object is in a near-earth or deep-space orbit; the result is
  106. returned in {ideep}.  If {ideep} is 0, then the object is in a near-earth
  107. orbit; if {ideep} is 1, it is in a deep-space orbit.  A call is then made to
  108. either SGP4 or SDP4 depending on the value of {ideep}.
  109.  
  110. The time passed in this call, {tsince}, represents the time since (before or
  111. after) the satellite epoch in the two-line element set.  The four-dimensional
  112. vectors {pos} and {vel} are returned containing the x, y, and z ECI
  113. coordinates (referenced to the true equator and mean equinox of date) and
  114. vector magnitude of the object's position and velocity, respectively, at the
  115. specified time.  Units are earth radii and earth radii per minute,
  116. respectively; appropriate conversions must be made to get the proper units (as
  117. demonstrated in the test program using Convert_Sat_State).  The variable
  118. {iflag} is used internally for keeping track of initialization conditions for
  119. the deep-space portion of the model.
  120.  
  121. Running this test program should provide results quite close to those provided
  122. in the Spacetrack Report Number 3 documentation.  The minor differences that
  123. do occur are due to two primary reasons.  The first is the result of
  124. differences in the internal precision of the FORTRAN compiler used to generate
  125. the report and that of the Turbo Pascal compiler.  The second is due to the
  126. choice to implement a consistent numerical precision in the Turbo Pascal code.
  127. Examination of the FORTRAN source code will reveal inconsistent use of single
  128. and double-precision variables and trigonometric functions; the Turbo Pascal
  129. code uses double-precision variables and functions throughout.
  130.  
  131. Because it is not very straightforward to perform calls to the SGP4 units
  132. based on the time since each satellite's element set epoch, a procedure is
  133. also provided which interfaces between a standard time system and the SGP4 and
  134. SDP4 calls.  This procedure, SGP, requires only that the user pass the Julian
  135. Date of interest; the procedure Julian_Date_of_Epoch converts from a date in
  136. the format used in the two-line element set to a Julian Date.  The SGP call
  137. also takes care of making the determination of whether the object is in a
  138. near-earth or deep-space orbit and calls the appropriate model.  The SGP_TIME
  139. unit contains these procedures as well as routines to convert Julian Dates to
  140. more recognizable time formats.
  141.  
  142. The main advantage of using the Julian Date in SGP is that there is no problem
  143. calculating the time interval between the time of interest and the satellite
  144. element set epoch, regardless of whether this interval spans the beginning of
  145. a year.  There is also a function to convert Julian Dates to calendar dates
  146. (Calendar_Date) of the form "1992 Jan 30."  Epoch_Time transforms the Julian
  147. Dates to the form used in the two-line element sets.
  148.  
  149. The test program SGP4TST2.PAS gives an example implementation of this
  150. approach.  It is designed to produce the same results as SGP4TEST.PAS.  The
  151. main difference is that the Julian Date is calculated to be the time of the
  152. epoch for each element set and then the offset (in minutes) is added.  Be sure
  153. to note that times outside the units are now all in *days* not in minutes (as
  154. they are inside the units).
  155.  
  156.  
  157. CONCLUSION
  158.  
  159. These Turbo Pascal units should make it easy to implement the official NORAD
  160. orbital models in developing any number of applications.  It is now very
  161. straightforward to select input files (of satellite and observer data) and
  162. time conditions (with full error checking) and output data ranging from
  163. spacecraft ECI position and velocity to spacecraft ground tracks (latitude,
  164. longitude, and altitude) to look angles (azimuth, elevation, range, and range
  165. rate) to right ascension and declination.  Each of these outputs uses the WGS
  166. '72 geoid (nonspherical) and takes into account atmospheric refraction, where
  167. appropriate.  These results can be easily output as text or incorporated into
  168. advanced graphical applications.
  169.  
  170. For a full-blown example of how to implement these functions, look for the
  171. application TrakStar/SGP4, also available on this system.  It allows output
  172. for up to 250 satellites (or element sets for a single satellite) in the form
  173. of spacecraft ECI position and velocity, spacecraft ground tracks (latitude,
  174. longitude, and altitude), look angles (azimuth, elevation, range, and range
  175. rate), and right ascension and declination.  A separate data file is created
  176. for each object/element set -- a great tool for all sorts of analyses.
  177.  
  178. Future releases of these units will include routines to efficiently determine
  179. crossing phenomena (e.g., satellite rise/set, sun rise/set, and satellite
  180. entry into/exit from earth eclipse) and local optima (e.g., closest approach).
  181. And, of course, the existing units will be converted to C with an eye toward
  182. portability.
  183.  
  184. In a continuing effort to promote standardization of orbital calculations, I
  185. will endeavor to continue to improve this package and will gratefully accept
  186. user feedback or contributions to this effort.
  187.  
  188.                                        - Dr TS Kelso
  189.                                          Internet:  tkelso@afit.af.mil
  190.                                          anonymous ftp at archive.afit.af.mil
  191.                                            in the directory pub/space
  192.  
  193.                                          SYSOP, Celestial BBS
  194.                                          513/427-0674 (modem)
  195.                                          Operating 24 hours/day
  196.                                          No parity, 8 data bits, 1 stop bit
  197.                                          300, 1200, 2400, 4800, and 9600 bps
  198.                                          v.32/32bis, v.42/42bis
  199.  
  200.                                          2340 Raider Drive
  201.                                          Fairborn, OH, USA  45324-2001
  202.